package com.最大交换;

import java.util.Arrays;

public class Solution {
    public int maximumSwap(int num) {
    	char temp[]=(num+"").toCharArray();
    	char numarray[]=(num+"").toCharArray();
    	Arrays.sort(temp);
    	int end=temp.length-1;
    	int start=0;
    	while(end>=0&&start<=temp.length-1) {
    		if(numarray[start]==temp[end]) {
    			start++;
    			end--;
    			continue;
    		}
    		else {
    			//此时end指向的数就是当前最大的需要被交换的
    			//接下来要考虑的就是377->737?773的问题
    			
    			int index=0;//用于记录要被交换的最大值
    			for(int i=start;i<temp.length;i++) {
    				if(numarray[i]==temp[end]) {
    					index=i;//找到最后一个此时需要的最大值
    				}
    			}
    	        char t = numarray[index];
    	        numarray[index]=numarray[start];
    	        numarray[start]=t;
    	        break;
    		}
    	}
    	String res=new String(numarray);
    	int maxnum=Integer.parseInt(res);
		return maxnum;
        
    }
}
